from vosk import Model, KaldiRecognizer
import json
import pyaudio

# 加载模型
a1 = Model('zhongwen')

# 创建麦克风对象
p = pyaudio.PyAudio()

# 打开音频流
a2 = p.open(
    format=pyaudio.paInt16,  # 16位深度音频数据
    channels=1,              # 单声道
    rate=16000,              # 采样率
    input=True,              # 启用输入流
    frames_per_buffer=4000   # 每次读取的帧数
)


# 创建语音识别器
a3 = KaldiRecognizer(a1, 16000)
print('开始实时识别')

while True:
    # 从麦克风读取数据
    a4 = a2.read(4000)
    # 如果读取到数据
    if a3.AcceptWaveform(a4):
        # 实时输出识别结果
        a5 = a3.Result()
        a6 = json.loads(a5)['text'].replace(' ', '')
        print(a6)
